package ch15;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/*Set接口存储一组唯一，无序的对象(意味着无法用get（）方法（即：角标无用了）)
两个经典的实现方法：HashSet（），TreeSet()
 */
public class SetTest {
    public static void main(String[] args) {
        Set s = new HashSet();
        s.add("dog");
        s.add("cat");
        s.add(Math.E);
        s.add("tiger");
        System.out.println(s);
        System.out.println("有"+s.size()+"个元素");
        //没有顺序，那么该如何循环？？(下面三种循环方式)
        System.out.println("***(遍历一)增强for循环****");
        for(Object o:s)//增强for循环
            System.out.println(o);

        System.out.println("***(遍历二)数组遍历****");
        Object[] objects =s.toArray();
        System.out.println(Arrays.toString(objects));

        System.out.println("***(遍历三)迭代器遍历****");
        Iterator ir =s.iterator();
        while (ir.hasNext()){
            System.out.print(ir.next()+"\t");
        }
        System.out.println();
        //******************
        s.add("duck");
        System.out.println("有"+s.size()+"个元素");
        //迭代器循环
        Iterator ir2 =s.iterator();
        while(ir2.hasNext()){
            System.out.print(ir2.next()+"\t");
        }

        s.add("dog");
        s.add("tiger");
        System.out.println("有"+s.size()+"个元素");//Set接口存储一组唯一（不会重复）
        //迭代器循环
        Iterator ir3=s.iterator();
        while (ir3.hasNext()) {
            Object next =  ir3.next();
            System.out.print(next+"\t");
        }

        System.out.println();
        System.out.println(s.contains("tiger"));//true
        System.out.println(s.contains("南京"));//false



    }
}
